package uml.behavioral.visitor;

import java.util.ArrayList;

/**
 * 访问者--元素结构<br>
 * on 2023/1/3 20:41
 */
public class ObjectStructure {
    private ArrayList<Candidate> candidates;

    /**
     * 构建一个集合用于存储具体元素
     */
    public ObjectStructure() {
        candidates=new ArrayList<>();
    }

    /**
     * 添加具体元素对象
     * @param c 抽象元素子类对象
     */
    public void add(Candidate c){
        candidates.add(c);
    }

    /**
     * 所有元素接受访问者访问
     * @param checker 抽象访问者子类对象
     */
    public void checkBy(AwardCheck checker){
        for (Candidate candidate : candidates) {
            candidate.accept(checker);
        }
    }
}
